/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.edu.com1263.model;

import java.io.Serializable;
import java.util.Collection;
import java.util.Date;
import java.util.HashSet;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


/**
 *
 * @author Luiz Cardoso
 */
@Entity
@Table(name="postado")
public class TrabalhoPostado implements Serializable{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="postado_id")
	private Long id;
	
	@Temporal(TemporalType.DATE)
	@Column(name="datapostada", nullable = false)
    private Date dataHora;	
	
	@ManyToOne
	@JoinColumn(name = "tarefa_id")
	private Tarefa tarefa;

	@ManyToOne
	@JoinColumn(name = "aluno_id")
	private Aluno aluno;
	

	@OneToMany(cascade = { CascadeType.ALL }, mappedBy = "postado")
	private Collection<Avalia> avaliados ;
	
	@Column(name="nome")
	private String nomeArquivo;
	
	@Lob
	@Column(name="arquivo")
	private byte[] arquivo;
	
    public TrabalhoPostado(	Date dataHora) {		
		this.dataHora = dataHora;
		
	}


	public TrabalhoPostado() {
    	avaliados = new HashSet<Avalia>();
    	
    }


	public Long getId() {
		return id;
	}


	public void setId(Long id) {
		this.id = id;
	}

	public Date getDataHora() {
		return dataHora;
	}


	public void setDataHora(Date dataHora) {
		this.dataHora = dataHora;
	}


	public Tarefa getTarefa() {
		return tarefa;
	}


	public void setTarefa(Tarefa tarefa) {
		this.tarefa = tarefa;
	}


	public Aluno getAluno() {
		return aluno;
	}


	public void setAluno(Aluno aluno) {
		this.aluno = aluno;
	}


	public Collection<Avalia> getAvaliados() {
		return avaliados;
	}


	public void setAvaliados(Collection<Avalia> avaliados) {
		this.avaliados = avaliados;
	}


	public byte[] getArquivo() {
		return arquivo;
	}


	public void setArquivo(byte[] arquivo) {
		this.arquivo = arquivo;
	}


	public String getNomeArquivo() {
		return nomeArquivo;
	}


	public void setNomeArquivo(String nomeArquivo) {
		this.nomeArquivo = nomeArquivo;
	}



    
    
    

}
